{% extends 'base/layout.html' %}
{% load buttons %}
{% load custom_links %}
{% load helpers %}
{% load perms %}
{% load plugins %}

{% comment %}
Blocks:
  breadcrumbs: Breadcrumb list items (HTML <li> elements)
  object_identifier: Unique identifier for the object
  extra_controls: Additional action buttons to display
  extra_tabs: Additional tabs to include
  content: Page content

Context:
  object: The object instance being viewed
{% endcomment %}

{% block header %}
  <div class="d-flex justify-content-between align-items-center">
    {# Breadcrumbs #}
    <nav class="breadcrumb-container px-3" aria-label="breadcrumb">
      <ol class="breadcrumb">
        {% block breadcrumbs %}
          <li class="breadcrumb-item"><a href="{% url object|viewname:'list' %}">{{ object|meta:'verbose_name_plural'|bettertitle }}</a></li>
        {% endblock breadcrumbs %}
      </ol>
    </nav>
    {# Object identifier #}
    <div class="float-end px-3">
        <code class="text-muted">
          {% block object_identifier %}
            {{ object|meta:"app_label" }}.{{ object|meta:"model_name" }}:{{ object.pk }}
            {% if object.slug %}({{ object.slug }}){% endif %}
          {% endblock object_identifier %}
        </code>
    </div>
  </div>
  {{ block.super }}
{% endblock %}

{% block title %}{{ object }}{% endblock %}

{% block subtitle %}
  <div class="object-subtitle">
    <span>Created {{ object.created|annotated_date }}</span>
    <span class="separator">&middot;</span>
    <span>Updated <span title="{{ object.last_updated }}">{{ object.last_updated|timesince }}</span> ago</span>
  </div>
{% endblock %}

{% block controls %}
  {# Clone/Edit/Delete Buttons #}
  <div class="controls">
    <div class="control-group">
      {% plugin_buttons object %}

      {# Extra buttons #}
      {% block extra_controls %}{% endblock %}

      {% if request.user|can_add:object %}
        {% clone_button object %}
      {% endif %}
      {% if request.user|can_change:object %}
        {% edit_button object %}
      {% endif %}
      {% if request.user|can_delete:object %}
        {% delete_button object %}
      {% endif %}

    </div>
    <div class="control-group">
      {% custom_links object %}
    </div>
  </div>
{% endblock controls %}

{% block tabs %}
  <ul class="nav nav-tabs px-3">
    {# Primary tab #}
    <li class="nav-item" role="presentation">
      <a class="nav-link{% if not active_tab %} active{% endif %}" href="{{ object.get_absolute_url }}">{{ object|meta:"verbose_name"|bettertitle }}</a>
    </li>

    {# Include any additional tabs #}
    {% block extra_tabs %}{% endblock %}

    {# Object journal #}
    {% if perms.extras.view_journalentry %}
      {% with journal_viewname=object|viewname:'journal' %}
        {% url journal_viewname pk=object.pk as journal_url %}
        {% if journal_url %}
          <li role="presentation" class="nav-item">
            <a href="{{ journal_url }}" class="nav-link{% if active_tab == 'journal'%} active{% endif %}">
              Journal {% badge object.journal_entries.count %}
            </a>
          </li>
        {% endif %}
      {% endwith %}
    {% endif %}

    {# Object changelog #}
    {% if perms.extras.view_objectchange %}
      {% with changelog_viewname=object|viewname:'changelog' %}
        {% url changelog_viewname pk=object.pk as changelog_url %}
        {% if changelog_url %}
          <li role="presentation" class="nav-item">
              <a href="{{ changelog_url }}" class="nav-link{% if active_tab == 'changelog'%} active{% endif %}">Change Log</a>
          </li>
        {% endif %}
      {% endwith %}
    {% endif %}
  </ul>
{% endblock tabs %}

{% block content-wrapper %}
  <div class="tab-content">
    {% block content %}{% endblock %}
  </div>
{% endblock content-wrapper %}

{% block modals %}
  {% include 'inc/htmx_modal.html' %}
{% endblock modals %}
